//package com.example.controller;
//
//import com.example.model.Result;
//import com.example.model.pojo.Person;
//import com.example.model.vo.ResultVO;
//import com.example.service.PolicyRecommendService;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import io.swagger.annotations.ApiParam;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//
//import java.util.List;
//
///**
// * 社保政策推荐控制器
// * @author system
// */
//@RestController
//@RequestMapping("/api/policy")
//@Api(tags = "社保政策推荐接口")
//@Slf4j
//public class PolicyRecommendController {
//
//    @Autowired
//    private PolicyRecommendService policyRecommendService;
//
//    /**
//     * 根据用户信息推荐适合的养老保险政策
//     * @param person 用户信息
//     * @return 推荐的保险政策列表
//     */
//    @PostMapping("/recommend")
//    @ApiOperation(value = "获取推荐的养老保险政策", notes = "根据用户信息推荐最适合的养老保险政策列表")
//    public Result<List<InsurancePolicy>> recommendPolicies(
//            @ApiParam(value = "用户信息", required = true)
//            @RequestBody Person person) {
//        if (person == null) {
//            return Result.error(ResultVO.PARAM_EMPTY);
//        }
//        try {
//            return policyRecommendService.recommendPolicies(person);
//        } catch (Exception e) {
//            log.error("推荐保险政策时发生错误", e);
//            return Result.error(ResultVO.INTERNAL_ERROR);
//        }
//    }
//
//    /**
//     * 获取政策的详细解释和个性化建议
//     * @param policyId 政策ID
//     * @param personId 用户ID
//     * @return 政策解释和建议
//     */
//    @GetMapping("/explanation/{policyId}/{personId}")
//    @ApiOperation(value = "获取政策解释和建议", notes = "获取特定政策的详细解释和针对用户的个性化建议")
//    public Result<String> getPolicyExplanation(
//            @ApiParam(value = "政策ID", required = true)
//            @PathVariable("policyId") Long policyId,
//            @ApiParam(value = "用户ID", required = true)
//            @PathVariable("personId") Long personId) {
//        if (policyId == null || personId == null) {
//            return Result.error(ResultVO.PARAM_EMPTY);
//        }
//
//        try {
//            // 这里需要先获取用户信息
//            Person person = new Person();
//            person.setId(personId);
//            // 实际项目中应该从数据库获取完整的用户信息
//            // person = userService.getById(personId);
//
//            if (person == null) {
//                return Result.error(ResultVO.ACCOUNTS_NOT_EXIST);
//            }
//
//            return policyRecommendService.getPolicyExplanation(policyId, person);
//        } catch (Exception e) {
//            log.error("获取政策解释时发生错误", e);
//            return Result.error(ResultVO.INTERNAL_ERROR);
//        }
//    }
//
//    /**
//     * 计算政策与用户的匹配度
//     * @param policyId 政策ID
//     * @param personId 用户ID
//     * @return 匹配度分数
//     */
//    @GetMapping("/match-score/{policyId}/{personId}")
//    @ApiOperation(value = "计算政策匹配度", notes = "计算特定政策与用户的匹配度分数")
//    public Result<Integer> calculateMatchScore(
//            @ApiParam(value = "政策ID", required = true)
//            @PathVariable("policyId") Long policyId,
//            @ApiParam(value = "用户ID", required = true)
//            @PathVariable("personId") Long personId) {
//        if (policyId == null || personId == null) {
//            return Result.error(ResultVO.PARAM_EMPTY);
//        }
//
//        try {
//            // 获取政策和用户信息
//            // 实际项目中应该从数据库获取
//            InsurancePolicy policy = new InsurancePolicy();
//            Person person = new Person();
//
//            // 计算匹配度
//            int score = policyRecommendService.calculateMatchScore(policy, person);
//            return Result.success(score);
//        } catch (Exception e) {
//            log.error("计算匹配度时发生错误", e);
//            return Result.error(ResultVO.INTERNAL_ERROR);
//        }
//    }
//}